package designpattern.singeleton;

/**
 * 单例设计模式（两种）
 * 1.定义：单例模式就是采取一定的设计，保证一个类整个软件系统中，这个类只能拥有一个实例
 *
 * 实现方式一：
 * 2.饿汉式实现
 */
public class SingeletonHugryDemo1 {
    public static void main(String[] args) {
        Bank bank1 = Bank.getInstance();
        Bank bank2 = Bank.getInstance();
        //引用相同，两个对象其实是同一个
        System.out.println("bank1:"+bank1+"------"+"bank2:"+bank2);
    }
}
/*
一个内部类银行类，让该类单例
 */
class Bank{
    //1.私有化构造方法,目的是为了只能在这个银行类中创建实例
    private Bank(){

    }
    //2.内部创建自身的实例，也要私有化，并且必须静态
    //设为静态是为了让外部可以通过类名可以直接拿到对象
    private static Bank instance = new Bank();

    //3.通过公共方法访问内部的私有实例，因为返回的实例为静态结构，方法也必须静态
    public  static Bank getInstance(){
        return instance;
    }
}